package com.xxg.renrenuser.service;

import com.xxg.renrencommon.domain.result.BaseResult;
import com.xxg.renrencommon.domain.result.PageInfoResult;
import com.xxg.renrenuser.dao.bean.UserCashOutInfo;
import com.xxg.renrenuser.domain.query.CashOutQuery;
import com.xxg.renrenuser.domain.query.GetCashOutListQuery;
import com.xxg.renrenuser.domain.result.CountBenefitResult;
import com.xxg.renrenuser.domain.result.GetByStatusResult;

import java.util.List;

/**
 * 类说明
 *
 * @author szj
 * @date 2021/12/21
 */
public interface UserSpreadBenefitService {
    /**
     * 查看收益统计
     *
     * @param userId 登录id
     * @return BaseResult<CountBenefitResult>
     */
    BaseResult<CountBenefitResult> countBenefit(String userId);

    /**
     * 根据状态查看收益订单记录
     *
     * @param status    状态
     * @param userIdStr 登录id
     * @return BaseResult<List < GetByStatusResult>>
     */
    BaseResult<List<GetByStatusResult>> getByStatus(Integer status, String userIdStr);

    /**
     * 提现
     *
     * @param userIdStr 登录id
     * @param query     提现信息
     * @return BaseResult<Void>
     */
    BaseResult<Void> cashOut(String userIdStr, CashOutQuery query);

    /**
     * 分页获取客户的提现申请列表
     *
     * @param query 分页获取客户的提现申请列表参数
     * @return BaseResult<PageInfoResult<UserCashOutInfo>>
     */
    BaseResult<PageInfoResult<UserCashOutInfo>> getApplyList(GetCashOutListQuery query);

    /**
     * 设置提现申请状态
     *
     * @param ids 数据库记录ID列表
     * @return 结果
     */
    BaseResult<Void> setApplyStatus(List<String> ids);
}
